package com.qpkj.oms.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.qpkj.common.annotation.Excel;
import com.qpkj.common.core.domain.BaseEntity;

/**
 * 任务对象 oms_task
 *
 * @author ruoyi
 * @date 2022-12-20
 */
@Data
@ToString
public class OmsTask extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 物料ID
     */
    private Long taskId;

    /**
     * 任务编号
     */
    @Excel(name = "任务编号")
    private String taskNo;

    /**
     * 任务分类
     */
    @Excel(name = "任务分类")
    private String taskCategory;

    /**
     * 发布时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date releaseTime;

    /**
     * 计划完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finishTime;
    /**
     * 实际完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date completeDate;

    /**
     * 最新进度时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最新进度时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date progressTime;

    /**
     * 任务状态（0正常 1完成 2取消）
     */
    @Excel(name = "任务状态", readConverterExp = "0=正常,1=完成,2=取消")
    private String status;

    /**
     * 是否置顶（0否 1置顶）
     */
    @Excel(name = "是否置顶", readConverterExp = "0=否,1=置顶")
    private String taskTopping;

    /**
     * 置顶时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "置顶时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date toppingTime;

    /**
     * 任务步骤（0领料 1擦球；2电镀；3彩绘；4包装；5完成）
     */
    @Excel(name = "任务步骤", readConverterExp = "0=领料,1=擦球；2电镀；3彩绘；4包装；5完成")
    private String taskStep;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;
    /**
     * 是否有备注信息（0代表没有；1代表有）
     */
    private String haveRemark;
    /**
     * 是否有环节被驳回（0代表没有；1代表有）
     */
    private String taskBack;
    /**
     * 交付人
     */
    private String deliver;
    /**
     * 关联合同
     */
    private Long contractId;
    /**
     * 补数数量
     */
    private Long compnengtsNum;
    /**
     * 合同编号
     */
    @Excel(name = "合同编号")
    private String contractNo;
    /**
     * 合同编号
     */
    @Excel(name = "合同名称")
    private String contractName;
    /**
     * 是否需要彩绘
     */
    @Excel(name = "是否需要彩绘")
    private String isPainting;
    /**
     * 任务状态（0否 1是）
     */
    @Excel(name = "补数状态", readConverterExp = "0否 1是")
    private String isBuShu;

    /**
     * 生产目标
     */
    private List<OmsTaskProduct> productList;
}
